package pers.cz.codegen.enums;

/**
 * @program: Jef-code-generator
 * @description: 常量常用注解
 * @author: Cheng Zhi
 * @create: 2023-05-12 11:03
 **/
public enum  FieldAnnotationEnum implements AnnotationEnum{

    /**
     * 自动装配，优先byType
     */
    AUTOWIRED("Autowired", "@Autowired"),

    /**
     * 自动装配，优先byName
     */
    RESOURCE("Resource", "@Resource"),

    /**
     * 使用xml做为spring的依赖注入文件时，如果在setter方法上添加了该注解，则标识该方法的值必须要从xml中获取。
     */
    REQUIRED("Required", "@Required"),

    /**
     * 如果ioc容器中存在多个类型一致的bean对象，此时如果直接使用@AutoWried装配会产生异常，此时需要配合@Qualifier("xxx")来指定beanName
     */
    QUALIFIER("Qualifier", "@Qualifier"),

    /**
     * 一般用来获取properties文件中的配置内容
     */
    VALUE("Value", "@Value");


    private String annotationName;
    private String annotationValue;

    FieldAnnotationEnum(String annotationName, String annotationValue) {
        this.annotationName = annotationName;
        this.annotationValue = annotationValue;
    }

    public String getAnnotationName() {
        return annotationName;
    }

    public void setAnnotationName(String annotationName) {
        this.annotationName = annotationName;
    }

    public String getAnnotationValue() {
        return annotationValue;
    }

    public void setAnnotationValue(String annotationValue) {
        this.annotationValue = annotationValue;
    }

    @Override
    public String value() {

        return annotationValue;
    }
}
